home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / language / fixes.arc / STDIO.H < prev    next >
C/C++ Source or Header  |  1985-11-20  |  4KB  |  126 lines

  1. /*
  2.  *
  3.  *    STDIO.H        Standard i/o include file
  4.  *
  5.  */
  6.  
  7. #ifndef STDIO_H
  8. #define    STDIO_H
  9.  
  10. #include <stddef.h>
  11. #include <types.h>
  12.  
  13. #define    _COOKIE(s)    gemdos(9,"<");gemdos(9,s);gemdos(9,">\r\n")
  14.  
  15. /*
  16.  *    CONSTANTS:
  17.  */
  18.  
  19. #define    _NFILE        (20)        /* maximum number of open streams */
  20. #define    OPEN_MAX    _NFILE        /* ANSI equivalent (replaces _NFILE) */
  21. #define    FILENAME_MAX    (128)        /* maximum filename size */
  22. #define    BUFSIZ        (1024)        /* default buffer size */
  23. #define    EOF        (-1)        /* end-of-file indicator */
  24. #define    EOS        '\0'        /* end-of-string indicator */
  25.  
  26. #define    EXIT_FAILURE    (-1)        /* failure return value for exit() */
  27. #define    EXIT_SUCCESS    (0)        /* success return value for exit() */
  28.  
  29. #define    RAND_MAX    (0x7FFF)    /* maximum value from rand() */
  30.  
  31. #ifndef FALSE
  32. #define    FALSE        (0)        /* boolean false */
  33. #define    TRUE        (!FALSE)    /* boolean true */
  34. #endif
  35.  
  36. #ifndef ERROR
  37. #define    ERROR        (-1)        /* general error condition */
  38. #endif
  39.  
  40. /* lseek() origins */
  41. #define    SEEK_SET    0        /* from beginning of file */
  42. #define    SEEK_CUR    1        /* from current location */
  43. #define    SEEK_END    2        /* from end of file */
  44.  
  45. /* cfg_ch() control flags */
  46. #define    _CIOB        0x01        /* use bios rather than gemdos */
  47. #define    _CIOCH        0x02        /* return only 8-bit values */
  48. #define    _CIOVT        0x04        /* process vt52 escape codes */
  49.  
  50. /* FILE structure flags */
  51. #define    _IOREAD        0x0001        /* file may be read from */
  52. #define    _IOWRT        0x0002        /* file may be written to */
  53. #define    _IOBIN        0x0004        /* file is in "binary" mode */
  54. #define    _IODEV        0x0008        /* file is a character device */
  55. #define    _IORW        0x0080        /* last i/o was 0:read/1:write */
  56. #define    _IOFBF        0x0100        /* i/o is fully buffered */
  57. #define    _IOLBF        0x0100        /* i/o is line buffered */
  58. #define    _IONBF        0x0400        /* i/o is not buffered */
  59. #define    _IOMYBUF    0x0800        /* standard buffer */
  60. #define    _IOEOF        0x1000        /* EOF has been reached */
  61. #define    _IOERR        0x4000        /* an error has occured */
  62.  
  63. typedef    struct            /* FILE structure */
  64.     {
  65.     int        _cnt;        /* # of bytes in buffer */
  66.     unsigned char    *_ptr;        /* current buffer pointer */
  67.     unsigned char    *_base;        /* base of file buffer */
  68.     unsigned int    _flag;        /* file status flags */
  69.     int        _file;        /* file handle */
  70.     int        _bsiz;        /* buffer size */
  71.     unsigned char    _ch;        /* tiny buffer, for "unbuffered" i/o */
  72.     }
  73.     FILE;
  74.  
  75. #define    L_tmpnam    128
  76. #define    TMP_MAX        1000
  77.  
  78. extern    char    *etext;
  79. extern    char    *edata;
  80. extern    char    *end;
  81.  
  82. extern    void    _exit();
  83. extern    long    gemdos();
  84. extern    long    bios();
  85. extern    long    xbios();
  86. extern    int    bdos();
  87.  
  88. extern    FILE    _iob[];
  89. extern    FILE    *fopen(), *fdopen(), *freopen(), *fopenp();
  90. extern    long    ftell(), fsize();
  91. extern    void    rewind(), setbuf(), setvbuf();
  92. extern    char    *fgets(), *gets(), *tmpnam(), *tempnam();
  93. extern    char    *fullpath(), *findfile(), *pfindfile(), *wildcard();
  94.  
  95. /* standard streams */
  96. #define stdin    (&_iob[0])
  97. #define stdout    (&_iob[1])
  98. #define stderr    (&_iob[2])
  99. #define stdprn    (&_iob[3])
  100. #define stdaux    (&_iob[4])
  101.  
  102. /* stream macros */
  103. #define clearerr(fp)    ((void) ((fp)->_flag &= ~(_IOERR|_IOEOF)))
  104. #define feof(fp)    ((fp)->_flag & _IOEOF)
  105. #define ferror(fp)    ((fp)->_flag & _IOERR)
  106. #define fileno(fp)    ((fp)->_file)
  107.  
  108. /* compatibility macros */
  109. #define    srand(seed)        /* no random seeding required */
  110. #define    sync()            /* sync() not possible, no operation */
  111.  
  112. /* aliases */
  113. #define    getc            fgetc
  114. #define    ungetc            fungetc
  115. #define    putc            fputc
  116. #define    getchar()        fgetc(stdin)
  117. #define    ungetchar(c)        fungetc((c),stdin)
  118. #define    putchar(c)        fputc((c),stdout)
  119. #define    fexists            exists
  120. #define    exists(f)        (access(f,0x00)==0)
  121. #define    unlink            remove
  122. #define    forkv(prog,args)    forkve(prog,args,NULL)
  123. #define    forkvp(prog,args)    forkvpe(prog,args,NULL)
  124.  
  125. #endif STDIO_H
  126.